/*******************************************************************************
  * 文件：DevState.h
  * 作者：djy
  * 版本：v1.0.0
  * 日期：2020-11-27
  * 说明：设备应用层状态机
*******************************************************************************/
#ifndef _DEV_STATE_H
#define _DEV_STATE_H

/* 头文件 *********************************************************************/
#include "Typedefine.h"
#include "Constant.h"
#include "Macro.h"
#include "StateMachine.h"

/* 宏定义 *********************************************************************/
#define CONFIG_IPG              (0)     // 0217将其改为了0

/* 类型定义 *******************************************************************/
typedef enum
{
    eDEV_INIT = 1,      // 初始化
    eDEV_STANDBY,       // 待机
    eDEV_RUN,           // 运行
    eDEV_ERROR,         // 故障
    eDEV_SELFCHECK,     // 整机自检（工厂生产用）
    eDEV_BOARDCHECK,    // 电脑板自检（板厂生产用）
}DevState_te;// 设备运行状态机

typedef struct
{
    Bool    bChildLock; // 童锁使能标志位
}DevCtrl_ts;

/* 变量声明 *******************************************************************/
/* 函数声明 *******************************************************************/

// 设备控制相关
void Dev_SetChildLock(Bool bChildLock);     // 设置童锁状态
Bool Dev_GetChildLock(void);                // 获取童锁状态

// 设备状态相关
void Dev_ChangeState(DevState_te eState);   // 设备状态切换
void Dev_RecoverState(DevState_te eState);  // 设备状态恢复
U8   Dev_GetCurrentState(void);             // 获取当前设备状态
U8   Dev_GetLastState(void);                // 获取上一设备状态
void Dev_StateInit(void);                   // 设备状态初始化

#endif /* _DEV_STATE_H */

/***************************** 文件结束 ***************************************/

